``bnlearn`` contains several examples within the library that can be used to practice with the functionalities of :func:`bnlearn.structure_learning`, :func:`bnlearn.parameter_learning` and :func:`bnlearn.inference`.


DataFrames
^^^^^^^^^^

The **sprinkler** dataset is one of the few internal datasets to import a pandas dataframe. This dataset is readily one-hot coded and without missing values. Therefore it does not require any further pre-processing steps. Note that 

.. code-block:: python

   import bnlearn as bn
   # Import dataset
   df = bn.import_example('sprinkler')

   print(df)
   #     Cloudy  Sprinkler  Rain  Wet_Grass
   # 0         0          0     0          0
   # 1         1          0     1          1
   # 2         0          1     0          1
   # ..      ...        ...   ...        ...
   # 998       0          0     0          0
   # 999       0          1     1          1

   # Structure learning
   model = bn.structure_learning.fit(df)

   # Plot
   G = bn.plot(model)



Import DAG/BIF
^^^^^^^^^^^^^^^

Each Bayesian DAG model that is loaded with :func:`bnlearn.bnlearn.import_DAG` is derived from a *bif* file. The *bif* file is a common format for Bayesian networks that can be used for the exchange of knowledge and experimental results in the community. More information can be found (here)[http://www.cs.washington.edu/dm/vfml/appendixes/bif.htm].


.. code-block:: python

	import bnlearn as bn

	bif_file= 'sprinkler'
	bif_file= 'alarm'
	bif_file= 'andes'
	bif_file= 'asia'
	bif_file= 'pathfinder'
	bif_file= 'sachs'
	bif_file= 'miserables'
	bif_file= 'filepath/to/model.bif'

	# Loading DAG with model parameters from bif file.
	model = bn.import_DAG(bif_file)



With the :func:`bnlearn.bnlearn.sampling` function a ``DataFrame`` can be created for *n* samples.



Export DAG/BIF
^^^^^^^^^^^^^^^

The learned bayesian network can be exported in one of common bayes network formats, like BIF, hugin or XMLBIF by using the BIFwriter from pgmpy.

.. code-block:: python

	# Import packages
	import pandas as pd
	from pgmpy.readwrite import BIFWriter
	import bnlearn as bn

	# Import dataset
	df = bn.import_example('sprinkler')
	# build model
	model = bn.structure_learning.fit(df)
	model = bn.parameter_learning.fit(model, df)

	# Write to BIF
	writer = BIFWriter(model['model'])
	writer.write_bif(filename='model.bif')


.. include:: add_bottom.add